Преобразование
макросов в процедуры VBA
Если вы создали
много макросов, а потом решили перейти к программированию на VBA, не следует
беспокоиться о том, что придется заново переписывать на VBA все созданные макросы.
В Access существует возможность автоматического преобразования макросов в процедуры
на VBA. Это касается как макросов, связанных с событиями в формах и отчетах,
которые преобразуются в процедуры обработки событий, так и общих макросов, не
связанных с формами и отчетами. Все они преобразуются в отдельные стандартные
модули.
Давайте попробуем
преобразовать в процедуры обработки событий макросы, назначенные событиям формы
"Наклейки для клиентов" (Customers Labels Dialog):
-
Откройте форму "Наклейки
для клиентов" (Customers Labels Dialog) в режиме Конструктора.
-
Выберите команду
Сервис,
Макрос, Преобразовать макросы формы
(Tools, Macro, Convert form's Macros
to Visual Basic).
-
В диалоговом окне
Преобразование
макроса формы
(Convert form macros) (рис. 11.19) нажмите кнопку
Преобразовать
(Convert), оставив флажки установленными по умолчанию.


Рис. 11.19.
Преобразование макроса в процедуру VBA
-
Когда преобразование
закончится, в форме "Наклейки для клиентов" (Customers Labels Dialog)
щелкните правой кнопкой мыши, например по кнопке
Отменить,
и выберите
команду
Свойства
(Properties).
-
В диалоговом окне
Свойства
(Properties) раскройте вкладку
События
(Events).
-
В поле для события
Нажатие
кнопки
(On Click) оказалось установленным значение
[Процедура обработки
событий]
([Event Procedure]). Щелкните по кнопке Построителя, находящейся
справа от поля, — откроется окно редактора VBA с текстом процедуры (рис. 11.20).

Рис. 11.20.
Процедура, полученная из макроса
В этой процедуре,
полученной из макроса, используются объект DoCmd для выполнения макрокоманды
закрытия формы. В соответствии с флажками, установленными в окне
Преобразование
макроса
(Convert Macro), комментарии в макросе были преобразованы в комментарии
в процедуре и был добавлен код обработки ошибки, который выдает на экран сообщение
об ошибке в случае ее возникновения
(см. гл. 13).
Аналогично
выполняется преобразование макросов, назначенных событиям отчета.
Теперь рассмотрим
преобразование в процедуру VBA макроса, не связанного с событием формы или отчета,
например созданного ранее макроса "Менеджеры по продажам".
-
Щелкните по ярлыку
Макросы
(Macros) в окне базы данных "Борей". Появится список макросов.
Выделите макрос "Менеджеры по продажам".
-
Выберите команду
Сервис,
Макрос, Преобразовать макросы
(Tools, Macro, Convert Macros to Visual
Basic).
-
Откроется такое же
диалоговое окно, как в предыдущем примере (см. рис. 11.19), в котором необходимо
нажать кнопку
Преобразовать
(Convert). После окончания процесса преобразования
появится сообщение об успешном завершении процесса преобразования и откроется
окно редактора VBA, в котором можно посмотреть полученный код на VBA (рис.
11.21).
-
Макрос преобразуется
в функцию с аналогичным именем Менеджеры_по_продажам (пробелы заменились символами
подчеркивания).

Рис. 11.21.
Результат преобразования макроса "Менеджеры по продажам"
После преобразования
исходный макрос "Менеджеры по продажам" не был удален, а в списке
модулей в окне базы данных "Борей" появился новый модуль с именем
"Преобразованный макрос — Менеджеры по продажам" (Converted Macro
— Менеджеры по продажам).
Существует
еще один способ преобразования макросов в модуль VBA:
-
Выделите макрос "Менеджеры
по продажам" в окне базы данных "Борей".
-
Выберите команду
Файл,
Сохранить как
(File, Save As).
-
В появившемся диалоговом
окне
Сохранение
(Save As), в раскрывающемся списке Как (As) выберите
элемент
Модуль
(Module) (рис. 11.22) и нажмите кнопку
ОК.

Рис. 11.22.
Сохранение макроса в виде модуля
Содержание раздела